package jvm.c2_classloader;

/*
*类加载过程
* loading
* --> Linking[1、Verification 验证字节码文件是否符合JVM规定。
*             2、Preparation 静态成员变量赋“默认值”。
*             3、Resolution 将类、方法、属性等符号引用解析为直接引用，常量池中的各种符号引用解析为指针、偏移量等内存地址的直接引用]
* -->initializing 调用类初始化代码<clinit>，给静态成员变量赋“初始值”,执行静态语句块。
*
* new 对象：申请内存 --> 默认值 --> 调用构造方法（1、成员变量顺序赋值 2、执行构造方法语句）
 * */
public class T001_ClassLoadingProcedure {
    public static void main(String[] args) {
        System.out.println(T.count);
    }
}

class T {
    public static int count = 2; //0
    public static T t = new T(); // null

    private int m = 8;

    private T() {
        count ++;
        //System.out.println("--" + count);
    }
}
